package com.cskaoyan.javase._2polymorphic._1basic;

/**
 * 多态的访问特征,从:
 *      成员变量
 *      成员方法
 * 两个角度出发
 *
 * 探究: 当父类引用指向不同子类对象时,访问的特征
 *      成员变量的访问,没有多态现象,直接就是引用中的成员变量
 *
 * @since 11:11
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        Father fs;
        fs = new BigSon();
        System.out.println(fs.a);
        fs = new Son();
        System.out.println(fs.a);

        fs = new LittleSon();
        System.out.println(fs.a);

        fs = new MiddleSon();
        // 这里仍然访问的是父类的a,但是这个a在子类中被赋值了
        System.out.println(fs.a);
    }
}

class Father {
    int a = 10;
}

class MiddleSon extends Father{
    {
        // 这个a是继承父类,仍然是父类的a
        a = 100;
    }
}

class Son extends Father {
    int a = 20;

}

class BigSon extends Father {
    int a = 30;

}

class LittleSon extends Father {
    int a = 40;

}